package com.zhaodui.bairong;

import com.xiaoleilu.hutool.http.HttpUtil;
import com.zhaodui.agora.agoraUtil;
import org.apache.commons.lang.StringUtils;
import net.sf.json.JSONObject;
import com.bfd.facade.MerchantServer;
import com.bfd.util.PropertiesUtil;
import org.jeecgframework.core.util.JSONHelper;

import java.util.HashMap;
import java.util.Map;

public class StrategyApiTest {

	/*
	 * 下面三个变量会在初期对接邮件中发送出来 userName pwd apicode 百融唯一识别码
	 */

	private static String userName = "zdkj_test";
	private static String pwd = "zdkj_test";
	private static String apiCode = "3100547";

	private static volatile String tokenid;
	private static MerchantServer ms = new MerchantServer();

	public static String getTokenid() {
		if (StringUtils.isBlank(tokenid)) {
			synchronized (StrategyApiTest.class) {
				if (StringUtils.isBlank(tokenid)) {
					tokenid = generateTokenid();
				}
			}
		}
		return tokenid;
	}

	private static String generateTokenid() {
		String tokenid = "";
		try {
			// 登陆
			String login_res_str = ms.login(userName, pwd, "LoginApi", apiCode);
			if (StringUtils.isNotBlank(login_res_str)) {
				JSONObject loginJson = JSONObject.fromObject(login_res_str);
				if (loginJson.containsKey("tokenid")) {
					tokenid = loginJson.getString("tokenid");
				} else {
					System.out.println("返回结果异常，无tokenid！结果为：" + login_res_str);
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return tokenid;
	}

	public static String getBrData(String jsonData) {
		String res = "";
		try {
			res = ms.getApiData(jsonData, apiCode);
			if (StringUtils.isNotBlank(res)) {
				JSONObject json = JSONObject.fromObject(res);
				if (json.containsKey("code") && json.getString("code").equals("100007")) {
					tokenid = null;
					jsonData = JSONObject.fromObject(jsonData).elementOpt("tokenid", getTokenid()).toString();
					res = ms.getApiData(jsonData, apiCode);
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return res;
	}

	public static void main(String[] args) {
//		JSONObject jso = new JSONObject();
//		JSONObject reqData = new JSONObject();
//
//		/*
//		 * apiname对应的不同的百融后台接口 ，配置文件： jar包 根目录下 brConfig.properties
//		 *
//		 * 部分列表如下所示：
//		 *
//		 * #登录（正式） LoginApi=https://api.100credit.cn/bankServer2/user/login.action
//		 * #画像正式BankServer4Api=https://api.100credit.cn/huaxiang/v1/get_report
//		 * #海纳API正式HainaApi=https://api.100credit.cn/HainaApi/data/getData.action
//		 * #三相之力 （整合api） TrinityForceAPI=https://api.100credit.cn/trinity_force/v1/get_data
//		 *
//		 */
//
//		jso.put("apiName", "BankServer4Api");
//
//		//获取 登陆验证码，1个小时内使用过，持续有效。
//		jso.put("tokenid", StrategyApiTest.getTokenid());
//
//		/*
//		 * 不同的接口需要传入不同的产品调用字段
//		 *
//		 * #画像：reqData.put("meal", "产品,产品"); 支持多个产品同时调用
//		 * #海纳   三相    整合：reqData.put("meal", "产品"); 只能调用单个
//		 *
//		 */
//
////		reqData.put("meal", "产品,产品");
//
//		// 传入后台的参数 具体入参 请参考  产品说明字典的传入数据
//		reqData.put("id", "350582197709164517");
//		reqData.put("cell", "13799555123");//手机
////		reqData.put("bank_id","1");
//		reqData.put("name", "王良岭");
//
//		jso.put("reqData", reqData);
//		String result = getBrData(jso.toString());
//		System.out.println(result);
 String sid = agoraUtil.startRec("123");

 System.out.print(sid);

 String status =  agoraUtil.stopRec(sid);

        System.out.print(status);




    }
}
